package com.accounting.juanjuan.exception;
import org.springframework.lang.NonNull;

/**
 * 业务级异常
 * <p>
 * 在进行业务操作时，后台检测不满足业务操作条件的，直接抛出业务级异常，<br>
 * 前台截获到该异常后，使用alert方式告知用户。该种异常用户可以读懂。<br>
 * 例如：修改个人基本信息时，如果发现该人员的基本信息已经审核完成，<br>
 * 抛出异常：该考生基本信息已经审核完成，无法进行信息修改。
 * <p>
 * 注意：继承自RuntimeException运行时异常。
 * </p>
 */
public class BizException extends BizRuntimeException {
    private static final long serialVersionUID = -939215105108887717L;
    private String errText;
    private String solution;

    public BizException(@NonNull String errText) {
        super(errText);
        this.errText = errText;
        this.solution = null;
    }

    /**
     * 业务异常
     *
     * @param errText  错误信息
     * @param solution 解决方案
     */
    public BizException(@NonNull String errText, @NonNull String solution) {
        this(errText + "[" + solution + "]");
        this.errText = errText;
        this.solution = solution;
    }

    public String getErrText() {
        return errText;
    }

    public String getSolution() {
        return solution;
    }
}
